﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using DevExpress.XtraGrid.Views.Grid;

namespace IT_Pro.Forms
{
    public partial class frmCVGhiNhanYeuCau : DevExpress.XtraEditors.XtraForm
    {
        public frmCVGhiNhanYeuCau()
        {
            InitializeComponent();
        }

        private void frmCVGhiNhanYeuCau_Load(object sender, EventArgs e)
        {
            loaddulieu();
            
        }        

        private void loaddulieu()
        {
            DataTable dtsl = Class.CV_GhiNhanYeuCau.LoadDanhSachSuLy();
            cboTrangThai.Properties.DataSource = dtsl;
            cboTrangThai.Properties.DisplayMember = "TenSuLy";
            cboTrangThai.Properties.ValueMember = "IDSL";
            cboTrangThai.EditValue = dtsl.Rows[0][0].ToString();

             cboTrangThaiSC.Properties.DataSource = dtsl;
            cboTrangThaiSC.Properties.DisplayMember = "TenSuLy";
            cboTrangThaiSC.Properties.ValueMember = "IDSL";
            cboTrangThaiSC.EditValue = dtsl.Rows[0][0].ToString();

            dateNgayBDYC.DateTime = DateTime.Today;// DateTime.Parse(DateTime.Now.Month.ToString() + "-" +DateTime.Now.Day.ToString() + "-" + DateTime.Now.Year.ToString());
            dateNgayKTYC.DateTime = DateTime.Now.AddDays(1);//DateTime.Parse(DateTime.Now.Month.ToString()+"-"+(DateTime.Now.Day+1).ToString()+"-"+DateTime.Now.Year.ToString());

            dateTuNgaySC.DateTime = DateTime.Today; //DateTime.Parse(DateTime.Now.Month.ToString() + "-" + DateTime.Now.Day.ToString() + "-" + DateTime.Now.Year.ToString());
            dateDenNgaySC.DateTime =DateTime.Now.AddDays(1);// DateTime.Parse(DateTime.Now.Month.ToString() + "-" + (DateTime.Now.Day + 1).ToString() + "-" + DateTime.Now.Year.ToString());
        }

        private void btnLapPhieu_Click(object sender, EventArgs e)
        {
            frmCVLapPhieuYeuCau frm = new frmCVLapPhieuYeuCau();
            frm.ShowDialog();
            btnXem_Click(null, null);
        }

        public void btnXem_Click(object sender, EventArgs e)
        {
            Class.CV_GhiNhanYeuCau gn = new Class.CV_GhiNhanYeuCau();
            gn.SuLy=int.Parse( cboTrangThai.EditValue.ToString());
            if (checkNgayYC.Checked)
            {
                gn.NgBDYC = dateNgayBDYC.DateTime;
                gn.NgKTYC = dateNgayKTYC.DateTime;
            }
            else
            {
                gn.NgBDYC = DateTime.Now.AddYears(-5);
                gn.NgKTYC = dateNgayKTYC.DateTime;
            }
            gridItem.DataSource = gn.LoaiDSYC();
        }

        private void btnSuLy_Click(object sender, EventArgs e)
        {
             int SelectedRow = gridDetailItem.FocusedRowHandle;
             if (SelectedRow >= 0)
             {
                 DataRow drow = gridDetailItem.GetDataRow(SelectedRow);
                 string _value = drow["ID"].ToString();
                  string _sl = drow["SuLy"].ToString();
                  if (_sl != "4")
                  {
                      frmCVSuLyYeuCau frm = new frmCVSuLyYeuCau(_value, cboTrangThai.EditValue.ToString());
                      frm.Owner = this;
                      frm.ShowDialog();
                  }
             }
        }

        private void btnXemTH_Click(object sender, EventArgs e)
        {
            int th = int.Parse(cboThucHien.SelectedIndex.ToString());
            Class.CV_GhiNhanYeuCau gn = new Class.CV_GhiNhanYeuCau();
            gn.ThucHien = th;
             gridItemTH.DataSource= gn.LichKetThucYeuCau();
        }

        private void gridDetailTH_DoubleClick(object sender, EventArgs e)
        {
            int SelectedRow = gridDetailTH.FocusedRowHandle;
             if (SelectedRow >= 0)
             {
                 DataRow drow = gridDetailTH.GetDataRow(SelectedRow);
                 string _value = drow["ID"].ToString();
                 string _th = drow["ThucHien"].ToString();
                 DateTime _ktrangay =DateTime .Parse(drow["NgayKetThuc"].ToString());
                 if (_ktrangay > DateTime.Now)
                 {
                     MessageBox.Show("Chưa đến ngày xác nhận. chưa thể thực hiện. \n Ngày kết thúc là ngày : " + _ktrangay.ToShortDateString());
                 }else
                 {
                     if (_th == "0")
                     {
                         _th = "1";
                     }
                     if (drow["ThucHien"].ToString() == "0")
                     {
                         DialogResult dr = MessageBox.Show(" Bạn đang thực hiện kết thúc yêu cầu số: " + _value + " Theo lịch?", "Thong bao ", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                         if (dr == DialogResult.Yes)
                         {
                             Class.CV_GhiNhanYeuCau gn = new Class.CV_GhiNhanYeuCau();
                             gn.Id = int.Parse(_value);
                             gn.ThucHien = int.Parse(_th);
                             try
                             {
                                 gn.ThucHienKetThucYC();
                                 MessageBox.Show("Thực hiện thành công !");
                                 btnXemTH_Click(null, null);
                             }
                             catch
                             {
                                 MessageBox.Show("Lỗi. Thực hiện chức năng thất bại !");
                             }

                         }
                     }
               }
             }

        }

        private void gridDetailItem_DoubleClick(object sender, EventArgs e)
        {
            int SelectedRow = gridDetailItem.FocusedRowHandle;
            if (SelectedRow >= 0)
            {
                DataRow drow = gridDetailItem.GetDataRow(SelectedRow);
                string _value = drow["ID"].ToString();
                string _sl = drow["SuLy"].ToString();
                if(_sl!="4")
                {
                frmCVSuLyYeuCau frm = new frmCVSuLyYeuCau(_value, cboTrangThai.EditValue.ToString());
                frm.Owner = this;
                frm.ShowDialog();
                }
            }
        }

        private void checkNgayYC_CheckedChanged(object sender, EventArgs e)
        {
            if (checkNgayYC.Checked)
            {
                dateNgayBDYC.Enabled = true;
                dateNgayKTYC.Enabled = true;

            }
            else
            {
                dateNgayBDYC.Enabled = false;
                dateNgayKTYC.Enabled = false;

            }
        }

        private void checkYCSC_CheckedChanged(object sender, EventArgs e)
        {
            if (checkYCSC.Checked)
            {
                dateTuNgaySC.Enabled = true;
                dateDenNgaySC.Enabled = true;
            }
            else
            {
                dateTuNgaySC.Enabled = false;
                dateDenNgaySC.Enabled = false;
            }
        }

        private void btnXemSC_Click(object sender, EventArgs e)
        {
            Class.CV_GhiNhanYCSuaChua gn = new Class.CV_GhiNhanYCSuaChua();
            gn.XuLy = int.Parse(cboTrangThaiSC.EditValue.ToString());
            if (checkYCSC.Checked)
            {
                gn.TuNgay = dateTuNgaySC.DateTime;
                gn.DenNgay = dateDenNgaySC.DateTime;
            }
            else
            {
                gn.TuNgay = DateTime.Now.AddYears(-5);
                gn.DenNgay = dateNgayKTYC.DateTime;
            }
            gridItemSC.DataSource = gn.LoadDsYeuCauSuaChua();
          
        }

        private void btnLapPhieuSC_Click(object sender, EventArgs e)
        {
            frmCVLapPhieuYCSuaChua frm = new frmCVLapPhieuYCSuaChua();
            frm.ShowDialog();
            btnXemSC_Click(null, null);
        }

        private void btnXuLyYCSC_Click(object sender, EventArgs e)
        {
            int SelectedRow = gridDetailSC.FocusedRowHandle;
            if (SelectedRow >= 0)
            {
                DataRow drow = gridDetailSC.GetDataRow(SelectedRow);
                string _value = drow["ID"].ToString();                
                string _sl = drow["SuLy"].ToString();
                string _tenloaisc = drow["TenLoaiSC"].ToString();
                string _loaisc = drow["IDSC"].ToString();

                string _nguyennhan = drow["NguyenNhan"].ToString();
                string _khachphuc= drow["KhacPhuc"].ToString();
                string _ghichu= drow["GhiChu"].ToString();
                if (_sl == "1")
                {
                    DialogResult dr = MessageBox.Show(" Bạn đang chuyển yêu cầu số: " + _value + " \n Sang trạng thái Đang xử lý ?", "Thong bao ", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                    if (dr == DialogResult.Yes)
                    {
                        Class.CV_GhiNhanYCSuaChua gn = new Class.CV_GhiNhanYCSuaChua();
                        gn.Id = int.Parse(_value);
                        gn.NguoiTH = Class.DataServices.Manv;
                        try
                        {
                            gn.XacNhanDangXuLyYC();
                            MessageBox.Show(" Chuyển trạng thái Đang sử lý thành công ");
                            btnXemSC_Click(null, null);
                        }
                        catch
                        {
                            MessageBox.Show(" Lỗi - không thể chuyển sang trạng thái Đang sử lý ");
                        }
                    }

                }else if (_sl == "2" || _sl == "3")                
                {
                    frmCVXuLyYeuCauSuaChua frm = new frmCVXuLyYeuCauSuaChua(_value, _tenloaisc, _loaisc,_nguyennhan,_ghichu,_khachphuc);                   
                    frm.ShowDialog();
                    btnXemSC_Click(null, null);
                }
            }
        }

        private void gridDetailSC_DoubleClick(object sender, EventArgs e)
        {
            btnXuLyYCSC_Click(null, null);
        }

        private void btnHuyPhieu_Click(object sender, EventArgs e)
        {
            int SelectedRow = gridDetailSC.FocusedRowHandle;
            if (SelectedRow >= 0)
            {
                DataRow drow = gridDetailSC.GetDataRow(SelectedRow);
                string _value = drow["ID"].ToString();
                string _sl = drow["SuLy"].ToString();
                if (_sl == "1")
                {
                    Class.CV_GhiNhanYCSuaChua huygn = new Class.CV_GhiNhanYCSuaChua();
                    huygn.Id =int.Parse( _value);
                    try
                    {
                        huygn.HuyPhieuYC();
                        MessageBox.Show("Hủy phiếu yêu cầu thành công !");
                        btnXemSC_Click(null,null);
                    }
                    catch { MessageBox.Show("Hủy phiếu thất bại !"); }
                }
                else
                {
                    MessageBox.Show("Phiếu này đã được chấp nhận xử lý nên không thể hủy ");
                }
            }
        }

        private void btnDoiMay_Click(object sender, EventArgs e)
        {
            int SelectedRow = gridDetailSC.FocusedRowHandle;
            if (SelectedRow >= 0)
            {
                DataRow drow = gridDetailSC.GetDataRow(SelectedRow);
                string _value = drow["ID"].ToString();
                string _sl = drow["SuLy"].ToString();
                string _mamay = drow["MaMay"].ToString();
                if (_mamay != "" && _sl!="4")
                {
                    frmCVDoiMayTinh frm = new frmCVDoiMayTinh(_value);
                    frm.ShowDialog();
                    btnXemSC_Click(null, null);
                }                
            }
        }
        bool indicatorIcon1=true;
        bool indicatorIcon2 = true;
        private void gridDetailItem_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
        {
            GridView view = (GridView)sender;
            //Check whether the indicator cell belongs to a data row
            if (e.Info.IsRowIndicator && e.RowHandle >= 0)
            {
                e.Info.DisplayText = (e.RowHandle + 1).ToString();
                if (!indicatorIcon1)
                    e.Info.ImageIndex = -1;
            }
        }

        private void gridDetailSC_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e)
        {
            GridView view = (GridView)sender;
            //Check whether the indicator cell belongs to a data row
            if (e.Info.IsRowIndicator && e.RowHandle >= 0)
            {
                e.Info.DisplayText = (e.RowHandle + 1).ToString();
                if (!indicatorIcon2)
                    e.Info.ImageIndex = -1;
            }
        }

        private void simpleButton1_Click(object sender, EventArgs e)
        {
            Forms.frmInDanhMucCongViec frm = new frmInDanhMucCongViec();
            frm.ShowDialog();
        }

        
    }
}